1. Field of the Invention
The present invention generally relates to computing operations performed by computing systems, and more particularly to graphics processing tasks performed by computing systems.
2. Related Art
A graphics processing unit (GPU) is a complex integrated circuit that is specially configured to carry out graphics processing tasks. A GPU can, for example, execute graphics processing tasks required by an end-user application, such as a video game application. For such applications, for example, there are several layers of software between the end-user application and the GPU.
The end-user application communicates with an application programming interface (API). An API allows the end-user application to output graphics data and commands in a standardized format, rather than in a format that is dependent on the GPU. Several types of APIs are commercially available, including DirectX® developed by Microsoft Corp. and OpenGL® developed by Silicon Graphics, Inc. The API communicates with a driver. The driver translates standard code received from the API into a native format of instructions understood by the GPU. The driver is typically written by the manufacturer of the GPU. The GPU then executes instructions from the driver.
A GPU produces, by carrying out a process known as “rendering” creates individual pixels that together form an image based on a higher level description of image components. A GPU typically carries out continuous rendering using pipelines to process pixel, texture, and geometric data. These pipelines are often referred to as a collection of fixed function special purpose pipelines such as rasterizers, setup engines, color blenders, hieratical depth, texture mapping and programmable stages that can be accomplished in shader pipes or shader pipelines, “shader” being a term in computer graphics referring to a set of software instructions used by a graphic resource primarily to perform rendering effects. In addition, GPU's can also employ multiple programmable pipelines in a parallel processing design to obtain higher throughput. A multiple of shader pipelines can also be referred to as a shader pipe array.
As a shader pipe array performs its ongoing rendering process, manufacturing defects in a pipeline can be become known and subsequent failures can occur within a pipeline. A small defect or failure in a system without any logic repair is fatal and can render the device defective.
In addition, GPUs also support texture mapping. Texture mapping is a process used to determine the texture color for a texture mapped pixel through the use of the colors of nearby pixels of the texture, or texels. The process is also referred to as texture smoothing or texture interpolation. However, high image quality texture mapping requires a high degree of computational complexity.
Given the ever increasing complexity of new software applications and API shader language advancements, the demands on GPUs to provide high quality rendering, texture mapping and generalize memory access for advanced rendering and generalized compute, computation complexities are further increasing.
In addition, GPUs equipped with a Unified Shader also simultaneously support many types of shader processing, from pixel, vertex, primitive, surface and generalized compute are raising the demand for higher performance generalized memory access capabilities.
What are needed, therefore, are systems and/or methods to alleviate the aforementioned deficiencies. Particularly, what is needed is a scalable Unified Shader design approach for a shader pipe with a multipurpose texture mapping system capable of generalized load/store operations with the ability to overcome the effects of a defective internal subcircuit with minimal impact on overall system performance.